//
//  LLNWReachabilityInterface.h
//  LLFoundation
//
//  Created by my_liu on 2016/11/14.
//  Copyright © 2016年 . All rights reserved.
//

#import <Foundation/Foundation.h>

typedef NS_ENUM(NSInteger, LLNWReachabilityStatus) {
    LLNWReachabilityStatusUnknown          = -1,
    LLNWReachabilityStatusNotReachable     = 0,
    LLNWReachabilityStatusReachableViaWWAN = 1,
    LLNWReachabilityStatusReachableViaWiFi = 2,
};
extern NSString * const LLNWReachabilityDidChangeNotification;

@protocol LLNWReachabilityInterface <NSObject>

- (instancetype)initWithDefault;

- (instancetype)initWithDomain:(NSString *)domain;

- (instancetype)initWithAddress:(void *)address;

- (LLNWReachabilityStatus)networkReachabilityStatus;

- (BOOL)isReachable;

- (BOOL)isReachableViaWWAN;

- (BOOL)isReachableViaWiFi;

- (void)startMonitoring;

- (void)stopMonitoring;

@optional
- (instancetype)initWithSharedManager;

extern NSString * const LLNWReachabilityDidChangeNotification;

@end
